<?php

/* * *
 * 
 */

class ReservaDAL {

    public static function listar($oReserva) {
        try {
            $arr = array("{#FECHA}" => $oReserva->getFecha(),
                "{#ID_USUARIO}" => $oReserva->getIdUsuario(),
                "{#ID_CENTRO}" => $oReserva->getIdCentro());
            $query = Util::getQuery($arr, ReservaSQL::$LISTAR);

            $arrDatos = Bd::exec($query);
            $arrReserva = array();

            if (count($arrDatos) > 0) {
                foreach ($arrDatos as $row) {
                    $oReserva = new Reserva();

                    $oReserva->setId(is_null($row["id"]) ? 0 : $row["id"]);
                    $oReserva->setBloques(is_null($row["bloques"]) ? 0 : $row["bloques"]);
                    $oReserva->setComentarios(is_null($row["comentarios"]) ? '' : $row["comentarios"]);
                    $oReserva->setFecha(is_null($row["fecha"]) ? '' : $row["fecha"]);
                    $oReserva->setFechaFormateada(is_null($row["fechaFormateada"]) ? '' : $row["fechaFormateada"]);
                    $oReserva->setTipo(is_null($row["tipo"]) ? '' : $row["tipo"]);
                    $oReserva->setEstado(is_null($row["estado"]) ? '' : $row["estado"]);
                    $oReserva->setIdPaciente(is_null($row["idPaciente"]) ? 0 : $row["idPaciente"]);
                    $oReserva->setIdCentro(is_null($row["idCentro"]) ? 0 : $row["idCentro"]);
                    $oReserva->setIdUsuario(is_null($row["idUsuario"]) ? 0 : $row["idUsuario"]);
                    $oReserva->setNombre(is_null($row["nombre"]) ? '' : $row["nombre"]);
                    $oReserva->setApellido(is_null($row["apellido"]) ? 0 : $row["apellido"]);
                    $arrReserva[] = $oReserva;
                }
            }

            return $arrReserva;
        } catch (Exception $e) {
            throw new Exception($query . $e->getMessage());
        }
    }

    public static function eliminar($id) {
        try {
            $arr = array("{#ID}" => $id);
            $query = Util::getQuery($arr, ReservaSQL::$ELIMINAR);
            $arrDatos = Bd::exec($query);
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }

    public static function grabar($oReserva) {
        try {
            $arr = array("{#BLOQUES}" => $oReserva->getBloques(),
                "{#COMENTARIOS}" => $oReserva->getComentarios(),
                "{#FECHA}" => $oReserva->getFecha(),
                "{#TIPO}" => $oReserva->getTipo(),
                "{#ESTADO}" => $oReserva->getEstado(),
                "{#IDPACIENTE}" => $oReserva->getIdPaciente(),
                "{#IDCENTRO}" => $oReserva->getIdCentro(),
                "{#IDUSUARIO}" => $oReserva->getIdUsuario());
            $query = Util::getQuery($arr, ReservaSQL::$GRABAR);
            $arrDatos = Bd::exec($query);

            return (int) Bd::$IDENTITY;
        } catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }

}

?>
